<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Odoo二次开发课程 - B站开课啦！</title>
    <link href="https://fonts.proxy.ustclug.org/css2?family=Noto+Sans+SC:wght@300;400;700&family=ZCOOL+KuaiLe&display=swap" rel="stylesheet">
    <style>
        :root {
            --van-gogh-dark-blue: #0a1f3a; /* 深邃的夜空蓝 */
            --van-gogh-medium-blue: #203a70; /* 中度星空蓝 */
            --van-gogh-light-blue: #537bc4; /* 淡雅的天空蓝 */
            --van-gogh-yellow: #f9d71c;    /* 明亮的星光黄 */
            --van-gogh-orange: #ff8c00;   /* 温暖的夕阳橙 */
            --van-gogh-green: #4a7f50;    /* 生机的橄榄绿 */
            --text-color: #ffffff;
            --highlight-color: var(--van-gogh-yellow);
            --accent-color: var(--van-gogh-orange);
            --font-main: 'Noto Sans SC', sans-serif;
            --font-display: 'ZCOOL KuaiLe', cursive; /* 站酷快乐体，具有手绘感 */
        }

        body {
            margin: 0;
            font-family: var(--font-main);
            background: linear-gradient(135deg, var(--van-gogh-dark-blue) 0%, var(--van-gogh-medium-blue) 25%, var(--van-gogh-light-blue) 50%, var(--van-gogh-yellow) 75%, var(--van-gogh-orange) 100%);
            color: var(--text-color);
            overflow-x: hidden;
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding: 20px;
            box-sizing: border-box;
        }

        .poster-container {
            background-color: rgba(0, 0, 0, 0.6); /* 半透明深色背景，突出内容 */
            border-radius: 25px;
            padding: 30px 40px;
            max-width: 800px; /* 限制最大宽度 */
            width: 90%;
            box-shadow: 0 15px 35px rgba(0,0,0,0.5), 
                        inset 0 0 20px rgba(255,255,255,0.1);
            border: 2px solid var(--van-gogh-yellow);
            position: relative;
            overflow: hidden; /* 用于clip-path和伪元素 */
            display: flex;
            flex-direction: column;
            gap: 25px; /* 各个内容块之间的间距 */
        }

        /* 模拟梵高笔触的背景元素 */
        .poster-container::before {
            content: '';
            position: absolute;
            top: -50px;
            left: -50px;
            right: -50px;
            bottom: -50px;
            background:
                radial-gradient(circle at 20% 20%, var(--van-gogh-yellow) 0%, transparent 10%),
                radial-gradient(circle at 80% 30%, var(--van-gogh-light-blue) 0%, transparent 15%),
                radial-gradient(circle at 30% 70%, var(--van-gogh-orange) 0%, transparent 12%),
                radial-gradient(circle at 70% 80%, var(--van-gogh-medium-blue) 0%, transparent 18%);
            opacity: 0.3;
            filter: blur(15px); /* 模糊效果，模拟颜料混合 */
            z-index: 0;
            animation: swirl 20s linear infinite alternate;
        }

        @keyframes swirl {
            0% { transform: rotate(0deg) scale(1); }
            100% { transform: rotate(15deg) scale(1.1); }
        }

        .header, .course-info, .instructor-info, .company-info, .contact-info {
            position: relative; /* 使内容在伪元素之上 */
            z-index: 1;
            text-align: center;
            padding: 15px;
            background-color: rgba(20, 30, 70, 0.3); /* 轻微背景区分 */
            border-radius: 15px;
            border: 1px solid rgba(249, 215, 28, 0.5); /* 黄色边框 */
            box-shadow: 0 5px 15px rgba(0,0,0,0.3);
        }
        
        .header {
            transform: rotate(-2deg); /* 轻微旋转增加动感 */
            margin-bottom: 10px;
        }

        .header h1 {
            font-family: var(--font-display);
            font-size: 2.8em; /* 增大标题字号 */
            margin: 0;
            color: var(--highlight-color);
            text-shadow: 2px 2px 5px var(--van-gogh-dark-blue), 0 0 10px var(--van-gogh-orange);
            letter-spacing: 2px;
        }
        .header h1 .bilibili-text {
            color: #FF69B4; /* B站粉 */
            font-size: 0.8em;
        }

        .course-info {
            transform: rotate(1deg);
        }

        .course-info h2 {
            font-family: var(--font-display);
            font-size: 1.8em;
            color: var(--van-gogh-light-blue);
            margin-top: 0;
            margin-bottom: 10px;
        }

        .course-info p {
            font-size: 1.1em;
            line-height: 1.7;
            margin: 8px 0;
        }
        .course-info p strong {
            color: var(--highlight-color);
            font-weight: bold;
        }

        .highlight-text {
            background: linear-gradient(to right, var(--van-gogh-orange), var(--van-gogh-yellow));
            -webkit-background-clip: text;
            color: transparent;
            font-weight: bold;
            padding: 0 5px;
        }

        .date-highlight {
            display: inline-block;
            background-color: var(--van-gogh-orange);
            color: var(--van-gogh-dark-blue);
            padding: 5px 15px;
            border-radius: 20px;
            font-weight: bold;
            font-size: 1.2em;
            margin-top: 10px;
            box-shadow: 0 0 15px var(--van-gogh-orange);
            transform: scale(1.05);
        }

        .company-info {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 15px;
            padding: 20px;
            transform: rotate(-1deg);
        }

        .company-logo {
            max-width: 120px;
            height: auto;
            padding: 8px;
            transition: transform 0.3s ease;
        }

        .company-logo:hover {
            transform: scale(1.05);
        }

        .company-info p, .instructor-info p, .contact-info p {
            margin: 5px 0;
            font-size: 1.1em;
        }
        
        .instructor-info, .contact-info {
            font-size: 1.1em;
        }
        .instructor-info strong, .contact-info strong {
            color: var(--van-gogh-light-blue);
        }

        .contact-info .qq-group {
            color: var(--accent-color);
            font-weight: bold;
            font-size: 1.2em;
        }
        .contact-info .email-address {
             word-break: break-all; /* 防止邮箱地址过长导致换行问题 */
        }

        /* 响应式设计 */
        @media (max-width: 768px) {
            .poster-container {
                padding: 20px;
                width: 95%;
                gap: 20px;
            }
            .header h1 {
                font-size: 2.2em;
            }
            .course-info h2 {
                font-size: 1.5em;
            }
            .course-info p, .company-info p, .instructor-info p, .contact-info p {
                font-size: 1em;
            }
            .date-highlight {
                font-size: 1.1em;
                padding: 4px 12px;
            }
            .company-logo {
                max-width: 150px;
            }
        }

        @media (max-width: 480px) {
            body {
                 padding: 10px;
            }
            .poster-container {
                padding: 15px;
                gap: 15px;
            }
            .header h1 {
                font-size: 1.8em;
            }
            .course-info h2 {
                font-size: 1.3em;
            }
            .course-info p, .company-info p, .instructor-info p, .contact-info p {
                font-size: 0.9em;
            }
            .date-highlight {
                font-size: 1em;
                padding: 3px 10px;
            }
             .company-logo {
                max-width: 120px;
            }
        }

        /* JavaScript驱动的粒子效果 */
        #particle-canvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1; /* 确保在最底层 */
            pointer-events: none; /* 允许点击穿透 */
        }

    </style>
</head>
<body>
    <canvas id="particle-canvas"></canvas>

    <div class="poster-container">
        <header class="header">
            <h1>Odoo开发教程 <span class="bilibili-text">B站见!</span></h1>
        </header>

        <section class="course-info">
            <h2><span class="highlight-text">最新版Odoo二次开发</span> 视频教程</h2>
            <p>每节课 <strong>5 ~ 10 分钟</strong>，小巧精悍，轻松掌握！</p>
            <p>预计 <strong>50 ~ 70 节课</strong>，系统学习，全面覆盖！</p>
            <p class="date-highlight">5月10日 开始更新</p>
        </section>

        <section class="company-info">
            <img src="https://tools.huo15.com/uploads/images/system/logo-colours.png" alt="火一五信息科技有限公司 LOGO" class="company-logo">
            <p><strong>出品：</strong>火一五信息科技有限公司</p>
        </section>

        <section class="instructor-info">
            <p><strong>主讲人：</strong>焰漩XIII</p>
        </section>

        <section class="contact-info">
            <p><strong>邮箱：</strong><span class="email-address">postmaster@huo15.com</span></p>
            <p><strong>QQ交流群：</strong><span class="qq-group">1093992108</span></p>
        </section>
    </div>

    <script>
        // 简单的粒子效果，模拟星空或梵高画作中的点彩
        const canvas = document.getElementById('particle-canvas');
        const ctx = canvas.getContext('2d');
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;

        let particlesArray = [];
        const numberOfParticles = 50; // 粒子数量

        // 梵高风格的颜色数组
        const vanGoghColors = [
            '#f9d71c', // yellow
            '#ff8c00', // orange
            '#537bc4', // light blue
            '#203a70', // medium blue
            '#ffffff'  // white for highlights
        ];

        class Particle {
            constructor() {
                this.x = Math.random() * canvas.width;
                this.y = Math.random() * canvas.height;
                this.size = Math.random() * 4 + 1; // 粒子大小
                this.speedX = Math.random() * 1 - 0.5; // 水平移动速度
                this.speedY = Math.random() * 1 - 0.5; // 垂直移动速度
                this.color = vanGoghColors[Math.floor(Math.random() * vanGoghColors.length)];
            }
            update() {
                this.x += this.speedX;
                this.y += this.speedY;

                // 边界处理，粒子循环出现
                if (this.x > canvas.width || this.x < 0) this.speedX *= -1;
                if (this.y > canvas.height || this.y < 0) this.speedY *= -1;

            }
            draw() {
                ctx.fillStyle = this.color;
                ctx.beginPath();
                ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
                ctx.fill();
                
                // 添加一点拖尾效果，模拟笔触
                ctx.globalAlpha = 0.3;
                ctx.beginPath();
                ctx.arc(this.x - this.speedX * 2, this.y - this.speedY * 2, this.size * 0.8, 0, Math.PI * 2);
                ctx.fill();
                ctx.globalAlpha = 1;
            }
        }

        function initParticles() {
            particlesArray = [];
            for (let i = 0; i < numberOfParticles; i++) {
                particlesArray.push(new Particle());
            }
        }

        function animateParticles() {
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            for (let i = 0; i < particlesArray.length; i++) {
                particlesArray[i].update();
                particlesArray[i].draw();
            }
            requestAnimationFrame(animateParticles);
        }

        initParticles();
        animateParticles();

        window.addEventListener('resize', () => {
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;
            initParticles(); // 窗口大小改变时重新初始化粒子，以适应新尺寸
        });
    </script>
</body>
</html>
